﻿/********************************************************************************************
 * Time de desenvolvedores
 *  Vinícius Batista de Souza       @vbs_br
 *  Fermando Martin Figuera         @fernandomartin
 *  
 *  
 * Jogo desenvolvido para testar algumas features e produzir trilha de treinamento no MSDN.
 * Faça o download do SDK do Windows Phone, faça você também o seu jogo :)
 * 
 * Dúvidas utilizem o Forúm do Windows Phone no MSDN.
********************************************************************************************/


using System;
using System.Windows;
using System.IO.IsolatedStorage;

namespace ComboBUG
{
    public static class Helper
    {

        public static string linkToShare = "www.viniciussouza.com.br";
        public static string shareImage = "http://www.viniciussouza.com.br/images/combobug/ApplicationIcon.png";
        public static string shareTitle = "ComboBUG";
        public static string shareDescription = "Fiz {0} pontos no level {1}, você consegue me vencer? Faça o download do ComboBUG para seu Windows Phone 7! \r\n Além de jogar, gostaria também de desenvolver seu próprio game? Então acesse o centro de treinamento MSDN do Windows Phone 7 em {3}.";
        public static string urlCentrodeTreinamento = "http://msdn.microsoft.com/pt-br/hh230679";

        public static double GetLineBug(double position)
        {
            return Math.Floor(position) + 1;
        }

        public static double GetColumnBug(double position, double bugs_per_line)
        {

            double bug_column = ((position - Math.Floor(position)) * bugs_per_line) + 1;
            return Math.Round(bug_column,0);
        }

        public static double SetBugSize(int Qtd_Elementos, double wrap_width, double wrap_height)
        {

            return Math.Round( Math.Sqrt((wrap_width * wrap_height) / Qtd_Elementos),0);

        }


        /// <summary>
        /// Atualiza a pontuação máxima se o valor for maior do que a pontuação máxima atual.
        /// </summary>
        /// <param name="score"></param>
        public static void SetMaxScore(int score)
        {

            //Classe responsável por acessar o gravar configurações locais.
            IsolatedStorageSettings settings =
                IsolatedStorageSettings.ApplicationSettings;

            string value = "0";
            int cur_max_value = 0;

            try
            {
                settings.TryGetValue("maxScore", out value);
                if (string.IsNullOrEmpty(value))
                    value = "0";

                cur_max_value = int.Parse(value);

                if (score > cur_max_value)
                {
                    settings["maxScore"] = score.ToString();
                }

                
            }
            catch
            {
                MessageBox.Show("error");
            }
        }


        /// <summary>
        /// Atualiza a nível máximo se o valor for maior do que a nível máximo atual.
        /// </summary>
        /// <param name="score"></param>
        public static void SetMaxLevel(int level)
        {
            IsolatedStorageSettings settings =  IsolatedStorageSettings.ApplicationSettings;

            string value = "0";
            int cur_max_level = 0;

            try
            {
                settings.TryGetValue("maxLevel", out value);
                if (string.IsNullOrEmpty(value))
                    value = "0";

                cur_max_level = int.Parse(value);

                if (level > cur_max_level)
                {
                    settings["maxLevel"] = level.ToString();
                }


            }
            catch
            {
                MessageBox.Show("error");
            }
        }

    }
}
